Scaling type overlay icons

ABSTRACT

A method and system are provided for displaying icons in accordance with user preferences. The method includes providing a user with a size selection mechanism for selecting an icon size from a range of sizes. The method additionally includes searching a set of stored resources related to the underlying file and generating the icon in the selected size based upon the stored resources. The method may additionally include selecting a type overlay and scaling the type overlay independently from the icon.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of copending U.S. patent applicationSer. No. 11/186,827, filed Jul. 22, 2005, entitled “Scaling Icons forRepresenting Files,” which is a continuation-in-part of U.S. patentapplication Ser. No. 10/831,145, filed Apr. 26, 2004, and entitled“System and Method for Scaling Icons,” the entirety of each are herebyincorporated by reference.

BACKGROUND

Icons have been used for many years in computer systems to displayinformation to users. Icons are images that are used to represent itemssuch as files, folders, shortcuts, applications, documents, tasks, andcommands throughout a computer operating system such as MICROSOFTWINDOWS™, a product of the Microsoft Corporation of Redmond, Washington.Icons are currently used in toolbars, dialog boxes, menus, and numerousother locations in file management systems such as Windows Explorer,also a product of the Microsoft Corporation. Icons are usually stored asstatic bitmaps, but dynamic icon handlers may also be written togenerate icons dynamically.

Currently, two types of icons are used to represent items. These twotypes include traditional icons and thumbnail icons. Whereas traditionalicons are typically shared across files and are determined per type,thumbnails are determined per item and are not shared across files. Atraditional icon is composed of two components including an icon imageand a status overlay. The icon image forms the basis of the traditionalicon. The status overlay is used to convey status information about theitem. It is used, for example, to display the shortcut overlay.

A thumbnail icon is a particular type of icon displaying an imagegenerated based on the contents of the underlying item. For example, anicon for an image file that actually looks like the image itself is athumbnail of the image file. Thumbnail icons may also include anoverlay. Thumbnail icons may be dynamically generated by code run on auser computer, although the generated image may be cached.

Although existing operating systems offer thumbnails, these thumbnailsare not well integrated into existing file management systems such asWindows Explorer. As a result, the thumbnail feature is not as useful asit could be. A user has to go to a special “thumbnails view” to seethumbnail icons today, even for objects having thumbnail icons thatwould be visually effective at a smaller size, such as photographs. Whenin the thumbnails view of existing systems, icons for objects withoutthumbnails appear small and inadequate. The user typically cannot seeextra information about each file in thumbnails view as the user can inother views such as tile view or details view. Accordingly, the user isoften forced to choose between viewing thumbnails and viewing otherimportant information.

Because the thumbnails feature is remote and not extensively utilized,little incentive exists for Independent Software Vendors (ISVs) to writethumbnail generators, When ISVs do write the thumbnail generators, theyare unlikely to invest in making the thumbnail generators powerful. As aresult, many existing application produce thumbnails of poor quality.Generally, since thumbnails are pictures, it is difficult to determinewhat type of item underlies a thumbnail icon. Furthermore, whiletraditional icons appear instantly, thumbnail icons are typicallynoticeably slow to appear because they were not generated in advance.

With traditional icons, overlays are often used as a primary or onlyindication of information about an item underlying an icon. However,overlays do not reliably appear. If multiple states need to be shown,overlays will only show the highest priority state and will ignoreothers since no more than one overlay may be shown at a time. Overlaysare difficult to recognize at small icon sizes, such as the sizesgenerally used in list or details mode. Overlays have additionaldrawbacks including the ability to be readily imitated and used in anunauthorized manner. A further limitation is the inaccessibility ofoverlays to the visually-impaired. A user navigating with the keyboardand using a narrator hears a name and type of each file as the file isselected, but is not given any information about a state that theoverlay represents. Additionally, overlays are used inconsistently toconvey information about the state of a file.

BRIEF SUMMARY

Features described herein are directed to a method for displaying anicon representing an underlying file on a user interface. The method mayinclude providing a user with a size selection mechanism for selectingan icon size from a range of sizes. The method may further includesearching a set of stored resources related to the underlying file andgenerating the icon in a user selected size based upon the storedresources.

In another aspect, a method is provided for enhancing display of iconson a user interface. The method may provide a user selection componentfor allowing a user to select an icon size for an icon representing afile. The method may additionally include selecting an icon typeincluding one of a traditional icon and a thumbnail icon based on atleast one of the size selection and the represented file. The method mayadditionally include generating the selected icon having the selectedsize and icon type.

In yet an additional aspect, a system is provided for enhancing icondisplay. The system may include a user icon scaling module for allowinga user to select an icon size for an icon representing an underlyingfile. The system may additionally include a resource selection modulefor selecting an image resource for generating the icon based on thesize selection. The resource selection module may, in some aspects,proceed through three levels of potential icons: one having an imagerepresenting the contents of the displayed object, one having an imagethat displays details of the current object, and one having a genericimage common to multiple objects.

In yet a further aspect, a system is provided for enhancing icondisplay. The system may include a user icon scaling module for allowinga user to select an icon size for an icon representing an underlyingfile. The system may additionally include a type selection module forselecting a type of icon including at least one of a traditional iconand a thumbnail icon, the type selection based on at least one of thesize selection and the underlying file.

BRIEF DESCRIPTION OF THE DRAWINGS

The features described in detail below are described with reference tothe attached drawings figures, wherein:

FIG. 1 is a block diagram illustrating a computerized environment inwhich features described herein may be implemented;

FIG. 2 is a block diagram illustrating an icon scaling system inaccordance with several features described herein;

FIGS. 3A-3G are samples or different types and sizes of icons;

FIG. 4 is a block diagram illustrating an icon configuration;

FIG. 5 illustrates several thumbnail icon configurations;

FIGS. 6A-6C illustrate multiple embodiments of visual effects for icons;

FIG. 7 illustrates a user scale for allowing a user to scale icons;

FIG. 8 is a flow chart illustrating a process for determining what typeof icon to use;

FIG. 9 is a flow chart illustrating a process for accessing imageresources; and

FIG. 10 is a flow chart illustrating an example process by which an iconmay be selected for representing objects in a display.

FIG. 11 is a table showing example icon size relationships.

DETAILED DESCRIPTION I. System Overview

Features described herein include a method and system for enablingscaling of icons to enhance a user experience. Icon scaling enablesusers to resize the icons in file management systems, such as MicrosoftWindows Explorer, to any size in a range from a small size appropriatefor looking at a long list of items to a very large size appropriate forlooking at a small number of thumbnails within a single view. As an iconis resized, the appearance and layout of the icon may change to bestaccommodate its new size.

FIG. 2 illustrates an icon scaling module 200. The icon scaling module200 may be implemented as one or more program modules in a computerizedenvironment as described below with reference to FIG. 1. The iconscaling module 200 may include a resource selection module 210, anoverlay selection module 220, a type selection module 230, a labelplacement module 240, and a user scaling module 250. Through the userscaling module 250, a user is able to select an icon size. Based on theuser scaling selection, the type selection module 230 may select a typeof icon such as a thumbnail or traditional icon. The resource selectionmodule 210 may also select a particular image resource for scaling basedon the scaling selection. Similarly, in some aspects, the overlayselection module 220 may select, scale, and/or position a status overlayand/or a type overlay based on the scaling selection, and the labelplacement module 240 may determine an appropriate location for a labelassociated with the icon based on the scaling selection.

Icons may be authored using a predetermined set of sizes, such as 16×16pixels and 32×32 pixels. When a user chooses to view an icon at a sizethat is not one of the predetermined sizes, the scaling module 200 mayinterpolate to determine what image to show the user. When the size ofan icon is changed, variables including the type of icon, the imageresource, label placement, and/or overlay configuration may be affectedas set forth herein.

II. Exemplary Operating Environment

FIG. 1 illustrates an example of a suitable computing system environment100 on which the features described herein may be implemented. Thecomputing system environment 100 is only one example of a suitablecomputing environment and is not intended to suggest any limitation asto the scope of use or functionality of the features described herein.Neither should the computing environment 100 be interpreted as havingany dependency or requirement relating to any one or combination ofcomponents illustrated in the exemplary operating environment 100.

The features herein are described in the general context ofcomputer-executable instructions, such as program modules, beingexecuted by a computer. Generally, program modules include routines,programs, objects, components, data structures, etc. that performparticular tasks or implement particular abstract data types. Thefeatures may be practiced with other computer system configurations,including hand-held devices, multiprocessor systems,microprocessor-based or programmable consumer electronics,minicomputers, mainframe computers, and the like. The features may alsobe practiced in distributed computing environments, where tasks may beperformed by remote processing devices that are linked through acommunications network. In a distributed computing environment, programmodules may be located in both local and remote computer storage mediaincluding memory storage devices.

With reference to FIG. 1, the exemplary system 100 may include a generalpurpose-computing device in the form of a computer 110, which mayinclude a processing unit 120, a system memory 130, and a system bus 121that couples various system components including the system memory tothe processing unit 120.

Computer 110 may include a variety of computer readable media. By way ofexample, and not limitation, computer readable media may comprisecomputer storage media and communication media. The system memory 130includes computer storage media in the form of volatile and/ornonvolatile memory such as read only memory (ROM) 131 and random accessmemory (RAM) 132. A basic input/output system 133 (BIOS), containing thebasic routines that help to transfer information between elements withincomputer 110, such as during start-up, is typically stored in ROM 131.RAM 132 typically contains data and/or program modules that areimmediately accessible to and/or presently being operated on byprocessing unit 120. By way of example, and not limitation, FIG. 1illustrates operating system 134, application programs 135, otherprogram modules 136, and program data 137.

The computer 110 may also include other removable/nonremovable,volatile/nonvolatile computer storage media. By way of example only,FIG. 1 illustrates a hard disk drive 141 that reads from or writes tononremovable, nonvolatile magnetic media, a magnetic disk drive 151 thatreads from or writes to a removable, nonvolatile magnetic disk 152, andan optical disk drive 155 that reads from or writes to a removable,nonvolatile optical disk 156 such as a CD ROM or other optical media.Other removable/nonremovable, volatile/nonvolatile computer storagemedia that can be used in the exemplary operating environment include,but are not limited to, magnetic tape cassettes, flash memory cards,digital versatile disks, digital video tape, solid state RAM, solidstate ROM, and the like. The hard disk drive 141 may be connected to thesystem bus 121 through a non-removable memory interface such asinterface 140, and magnetic disk drive 151 and optical disk drive 155may be connected to the system bus 121 by a removable memory interface,such as interface 150.

The drives and their associated computer storage media discussed aboveand illustrated in FIG. 1, provide storage of computer readableinstructions, data structures, program modules and other data for thecomputer 110. In FIG. 1, for example, hard disk drive 141 is illustratedas storing operating system 144, application programs 145, other programmodules 146, and program data 147. Note that these components can eitherbe the same as or different from operating system 134, applicationprograms 135, other program modules 136, and program data 137. Operatingsystem 144, application programs 145, other program modules 146, andprogram data 147 are given different numbers here to illustrate that, ata minimum, they are different copies. A user may enter commands andinformation into the computer 110 through input devices such as akeyboard 162 and pointing device 161, commonly referred to as a mouse,trackball or touch pad. Other input devices (not shown) may include amicrophone, joystick, game pad, satellite dish, scanner, or the like.These and other input devices may be connected to the processing unit120 through a user input interface 160 that is coupled to the systembus, but may be connected by other interface and bus structures, such asa parallel port, game port or a universal serial bus (USB). A monitor191 or other type of display device may also be connected to the systembus 121 via an interface, such as a video interface 190. In addition tothe monitor, computers may also include other peripheral output devicessuch as speakers 197 and printer 196, which may be connected through anoutput peripheral interface 195.

The computer 110 may operate in a networked environment using logicalconnections to one or more remote computers, such as a remote computer180. The remote computer 180 may be a personal computer, and typicallyincludes many or all of the elements described above relative to thecomputer 110, although only a memory storage device 181 has beenillustrated in FIG. 1. The logical connections depicted in FIG. 1include a local area network (LAN) 171 and a wide area network (WAN)173, but may also include other networks.

When used in a LAN networking environment, the computer 110 may beconnected to the LAN 171 through a network interface or adapter 170.When used in a WAN networking environment, the computer 110 may includea modem 172 or other means for establishing communications over the WAN173, such as the Internet. The modem 172, which may be internal orexternal, may be connected to the system bus 121 via the user inputinterface 160, or other appropriate mechanism. In a networkedenvironment, program modules depicted relative to the computer 110, orportions thereof, may be stored in the remote memory storage device. Byway of example, and not limitation, FIG. 1 illustrates remoteapplication programs 185 as residing on memory device 181. It will beappreciated that the network connections shown are exemplary and othermeans of establishing a communications link between the computers may beused.

Although many other internal components of the computer 110 are notshown, those of ordinary skill in the art will appreciate that suchcomponents and the interconnection are well known.

III. Sample Icons

FIGS. 3A-3G illustrate a sampling of icons in various sizes. FIG. 3Aillustrates a sampling of document icons 302, 304, 306, 308, 310, 312,314, 316, and 318. The document icons 302, 304, 306, 308, 310, and 312each include respective document images 302 a, 304 a, 306 a, 308 a, 310a, and 312 a. Each of the aforementioned document icons additionallyincludes a type overlay 302 b, 304 b, 306 b, 308 b, 310 b, and 312 b.These type overlays indicate a type of the underlying document (e.g.,word processing file, picture file, video file, audio file, spreadsheet,etc.). The document icon 302 is shown as having a 256×256 pixel overallicon size and a 60×60 pixel type overlay portion. The images andoverlays may be scaled independently of one another, such that the image304 a is scaled between the images 302 a and 306 a and the overlay 304 bis scaled between the overlays 302 b and 306 b. In the depicted example,document icon 306 is the next available document size. The overall sizeof icon 306 is 128×128 pixels and the overlay portion is 32×32 pixels.Document icon 304 is an icon scaled between the standard sized icons 302and 306. Similarly, document icon 308 is scaled between the documenticon 306 and the document icon 310, which includes a 64×64 overall iconsize and an 18×18 pixel overlay portion 310 b. Document icon 314 is a32×32 pixel icon that includes only an overlay portion because its sizeis too small to clearly display both an overlay and a document image.Document icon 312, which is scaled between document icon 310 and 314show both the document image portion 312 a and the type overlay portion312 b. Smaller icons 314, 316 and 318 show only the type overlay portionof the item. The respective type overlays may include an icon, image,symbol, letter, number, etc. to indicate the type of document such as aMICROSOFT WORD™ document. The document icons may be provided in manysizes, including 16×16, 24×24, 32×32, 48×48, 128×128, and 256×256pixels. Alternatively, some of these sizes may be omitted and/oradditional sizes may be included.

FIG. 3B illustrates a set of MICROSOFT POWERPOINT™ Icons 320, 322, 324,326, and 328. The Icons 320, 322, and 324 include an image portion 320a, 322 a, and 324 a, which may be an image of the first slide in apresentation. The icons 320, 322, and 324 also include overlay portions320 b, 322 b, and 324 b. The icons 326 and 328 are too small to bedisplayed with both portions. Accordingly these icons include only athumbnail image. The decision to show a thumbnail image or an overlaymay be made on a per type basis.

FIG. 3C also includes a set of icons 330, 332, 334, 336, and 338. Theicons 330, 332, and 334 include respective image portions 330 a, 332 a,and 334 a, which may be an image of a first page of a document, andoverlay portions 330 b, 332 b, and 334 b indicating that the document isan .mht document. Icons 336 and 338 are too small to adequately displayboth portions, and therefore include only the type overlay portion toindicate the type of underlying document.

FIG. 3D illustrates a plurality of scaled photo icons 340, 342, 344,346, and 348. These icons are preferably thumbnail icons that include aphotograph or image from within the underlying file. The thumbnail iconsshown display useful information and include no overlay portion.

FIG. 3E illustrates a set of video icons 350, 352, 354, 356, and 358.The icons 350, 352, and 354 each include a respective image portion 350a, 352 a, and 354 a. The included images may be thumbnail images, suchas a still image or portion thereof of a video. The icons 350, 352, and354 each also include a respective type overlay portion 350 b, 352 b,and 354 b. The icons 356 and 358 include only the image portion, whichmay be a thumbnail image, as the icons are too small to include bothportions.

FIG. 3F illustrates a set of contact icons 360, 362, 364, 366, 368, and370, which may be used in conjunction with an email and/or address book.The icons 360 and 362 each include a respective image portion 360 b and362 b, which may be a thumbnail image, and a respective informationalportion 360 a and 362 a. Icons 364, 366, and 368 include only an imageportion, as the icons are too small to show both the image andinformational portion. Icon 370 illustrates a generic image that may beshown if a thumbnail image is unavailable.

FIG. 3G illustrates a generic contact icon 372 that may be used when nophotograph is available for the contact. The icon 372 includes a genericimage 372 b and an informational portion 372 a.

As illustrated by these examples, scaled icons may differ in terms oftheir relative size. The scaling may be done beforehand, in which casemultiple versions of the icon, at different scales, may be generated inadvance and stored in a system memory. Scaling may also be performeddynamically, in which a new scale version of an icon is generated at thetime it is needed. The different scale versions of icons may differ inother respects as well. For example, larger scale icons may have moregraphical space available for additional elements, such as additionaloverlays, user interface elements, more detailed images, etc., and maybe more complex than the smaller scale versions by including thoseadditional features. Conversely, a smaller scale icon might omit some ofthese features, and may be simpler by comparison.

IV. Overlays

As set forth above, the different icon sizes may also include differentoverlay sizes. As set forth above with respect to FIG. 2, the selectionand placement of overlays may be based on user-selected scaling. Theoverlay selection module 220 determines an overlay configuration basedon user scaling input.

Two kinds of overlays include status overlays and type overlays. Theoverlays shown above with respect to FIGS. 3A-G are type overlays thatindicate a type. The type overlay may be used for thumbnail icons toconvey what type of object the thumbnail image portrays. The typeoverlays appear in a lower right-hand corner of the image. Statusoverlays serve as a visual cue to help a user quickly identify somepiece of relevant information about an item being viewed. Statusoverlays may appear in a lower left hand corner of an image.

One use of a status overlay includes alerting the user of a transitionalor temporary state of a file upon which a user may wish to act. Anexample would be putting a “new” overlay on a file that has justrecently been created. Another possible use for a status overlay isindicating relevant context sensitive information upon which a user maywish to act. An example would be putting an “error” overlay on a file inthe download manager that could not complete downloading. In general,information that is being conveyed through a status overlay should alsobe a property that can be used for any purpose by the user, such assorting, grouping, stacking, filtering, and searching. The informationcan also help the user make an informed decision as to what they wantto/can do with a file. For example, an overlay might indicate that thefile was downloaded from the Internet and has not been checked forviruses. Such an overlay would help the user decide whether to open thefile, or whether to first run a virus scan on it. As another example, anoverlay might indicate whether the associated file is available locallyor if it is available remotely (such as from an Internet site). A filethat is not available locally might take longer to open, and the usermight factor that in the decision as to whether to open the file.

Table 1 describes size overlays that may be displayed on icons ofdifferent sizes.

TABLE 1 Icon Size Corresponding Overlay Size 256 × 256 48 × 48 128 × 12832 × 32 48 × 48 24 × 24 32 × 32 16 × 16 16 × 16 8 × 8

The overlays may scale independently from the icons. Between eachdefined icon snap size such as 256×256, 128×128, 64×64, 32×32, and16×16, the overlays may scale linearly between the two overlay sizes.Table 2, shown in FIG. 11, shows one embodiment of the overlay sizesrelative to icon sizes along a continuous range.

V. Icon Types And Layouts

FIG. 4 illustrates a traditional icon 400 including an icon image 401and a status overlay 402. The icon image 401 may be stored as a bitmapor may be dynamically generated. The status overlay 402 is used toconvey status information about an item. The status overlay may also bedynamically generated or may be stored as a bitmap. In the displayedembodiment, the icon image 401 has dimensions of width=height=X. In someaspects, the status overlay 402 is drawn at the bottom left corner ofthe image so that the bottom edge of the overlay 402 is aligned with thebottom edge of the icon 400 and the left edge of the overlay 402 isaligned with the left edge of the icon 400. Alternatively, the layoutmay be configured differently.

FIG. 5 illustrates possible layouts for a thumbnail icon. A row 500illustrates bottom aligned thumbnail icons 510 and 520. A row 530illustrates centrally aligned thumbnail icons 540 and 550. Thebottom-aligned thumbnail icon 510 includes an image portion 512, astatus overlay 514, and a type overlay 516. The bottom-aligned thumbnailicon 520 includes an image portion 522, status overlay 524, and a typeoverlay 526. The thumbnail icon 540 includes an image portion 542, astatus overlay 544, and a type overlay 546. The thumbnail icon 550includes an image portion 552, a status overlay 554, and a type overlay556. In general, the image within each icon is denoted by (A), thestatus overlay by (B), and the type overlay by (C). The thumbnail iconitself is a square with a width and height equal to X. The thumbnailimage (A) is scaled so that its longest dimension is at most equal to X.

As illustrated in FIG. 5, in all of the displayed configurations, thethumbnail image (A) is drawn horizontally centered within the thumbnailicon. The vertical placement of the thumbnail image (A) may bedetermined by the type of view. If a current view has text labels placedbelow the icon then the bottom edge of the thumbnail image (A) may liealong the bottom edge of the thumbnail icon. If the current view hastext labels placed to the side of the icon, then the thumbnail image (A)may be vertically centered within the thumbnail icon.

The placement of the status overlay (B) may depend on the placement ofthe thumbnail image (A) within the thumbnail icon. The depicted statusoverlay (B) fits within the boundaries of the thumbnail icon.Horizontally, the status overlay (B) may be centered around the leftedge of the thumbnail image (A), but may be moved to the right whennecessary, to avoid extending over a left boundary of the thumbnail iconitself.

The placement of the type overlay (C) may depend on the placement of thethumbnail image (A) within the thumbnail icon. Vertically, like thestatus overlay (B), the bottom edge of the type overlay (C) may liealong the bottom edge of the thumbnail image such that the type overlay(C) fits within the boundaries of the thumbnail icon when the thumbnailimage (A) is bottom-aligned. Horizontally, like a mirror of the statusoverlay (B), the type overlay (C) may be centered around the right edgeof the thumbnail image (A), but may be moved to the left when necessary,to avoid extending over the right boundary of the thumbnail icon itself.

For certain predefined icon sizes, such as icons between 16×16 and 47×47pixels, the label placement module 240 may position the filename besidethe icon. For example, for sizes 32×32 to 47, the label placement module240 may provide additional tile information beside the icon. For sizes48×48 and larger, the label placement module 240 may place the filenamebelow the icon.

In a default mode, type overlays may be shown on a thumbnail icon if andonly if it is within the document library. In some instances, typeoverlays will not be shown on photographs or video by default. A settingin the view options may be available to enable users to turn on or offthe type overlays on documents. A mechanism such as an applicationprogram interface (API) may be provided that allows applications toassociate a type overlay with each file type they own.

VI. Visual Enhancements

FIGS. 6A-6C illustrate visual enhancements that may be applied tothumbnail icons. There are several types of visual treatments that canbe applied to thumbnail images and some of these treatments may furtherscale down an image.

FIG. 6A illustrates a thumbnail image 600 and a type overlay 602. Aborder 604 is applied and the icon may be registered to receive such atreatment. For example, MICROSOFT WORD™ documents may be registered tohave this treatment applied to them. The border may be applied solely tothe thumbnail image 600 and not to the entire bounding box of thethumbnail icon.

FIG. 6B illustrates a thumbnail image 610 having a photo paper border612. The photo paper border 612 may be applied to a thumbnail if theunderlying file is an “image” type and the icon size meets requirements.A photo paper border may be applied to the thumbnail image if thethumbnail image is an image type and it is of a suitable predeterminedsize, such as 256, 128, 48 or 32 pixels. In this example, no photo paperborder is applied at size 16.

Table 3 describes the photo paper border width at each thumbnail iconsize in this example.

TABLE 3 Icon Size Photo Paper Border Width 256 5 128 3 48 2 32 1 16 Nophoto paper border.

The width may be interpolated between the displayed sizes in a similarmanner to the overlays shown in Table 2.

FIG. 6C illustrates a thumbnail image 620 having sprockets 622 and atype overlay 624. The sprockets may be applied to the thumbnail image620, which may be a still image from a movie, to convey that it is amovie type. The sprockets include two images placed along the top andbottom of the thumbnail image 620 to make it look like a piece of filmstrip. A pair of sprockets may be applied to the thumbnail image if itis a perceived video type, and if the thumbnail icon size is of apredetermined size, such as 256, 128, 48, or 32 pixels. Again, in thisexample, no sprockets are applied at size 16. Table 4 describes thesprocket size at each thumbnail icon size in this example.

TABLE 4 Icon Size Sprocket Height 256 18 128 10 48 6 32 4 16 Nosprockets.

The top sprocket may be placed so that its bottom edge aligns with thetop edge of the thumbnail image, and the bottom sprocket may be placedso that its top edge aligns with the bottom edge of the thumbnail image.If the thumbnail image has a height large enough to make the thumbnailimage with the sprockets higher than X pixels, then the two sprocketsmay be moved closer to one another. The top sprocket may be moved downand the bottom sprocket may be moved up until the thumbnail image withthe applied sprockets is no taller than the height X.

Other effects may include a gradient effect that may be applied tothumbnail image to make it more attractive. Furthermore, a shine effectmay be applied to the thumbnail image if the object type has beenregistered to receive such a treatment. For example, POWERPOINT™ typesmay be registered to have this treatment applied to them. A thumbnailicon may also include a drop shadow effect or other visual effect.

VII. Using the Scaling Mechanism

As set forth above, and as illustrated in FIG. 2, a user scaling module250 receives user input, such as through a graphical user interface, forscaling. FIG. 7 illustrates a user scale for allowing a user to scaleicons. Users can scale icons to certain predetermined sizes, such asbetween 16×16 and 256×256 pixels. An icon size slider 702 may beprovided in a view pane. A view mode control 700 allows a user to switchbetween an icon mode and a details mode. A user can move the icon slider702 to adjust the icon size. The icon size slider 702 may have snappoints around sizes 16, 32, 48, 128, and 256. If the slide controlindicates a size within a few pixels of one of the snap sizes, the iconswill snap to that size. In some aspects, if the slider control is withinfour pixels in either direction of a snap size, the selected icons willbe set at the snap size.

Additionally, a view menu may have an item labeled “Icon Size,” with thefollowing choices appearing off a submenu: Tiny, Small, Medium, Large,and Huge, or similar selections that correspond to icon sizes such as16, 32, 48, 128, and 256. For example, the view menu may be a pull-downmenu listing selectable options, and the listed menu options may beselected by clicking, right-clicking, etc.

As with others of the inputs described above, such inputs may be enteredusing a graphical element, such as a slider bar. Furthermore, users maybe able to scale icons using a hardware input, such as a scroll wheelfound on many mice. Moving the scroll wheel forward while holding downthe CTRL key can increase the size of the icon and moving the scrollerwheel backward while holding down the CTRL key can decrease the size ofthe icon.

In absence of user scaling, the icons may have default sizes. Thefollowing Table 5 describes example default sizes of icons in variousfolder locations.

TABLE 5 Place Default Icons Size Default Details Size Document Library48 16 Photo/Video 128 16 Library Music/Radio 48 16 Library ContactLibrary 48 48

If the user selection requires that the icon be scaled between snapsizes, the system utilizes a scaling mechanism including a mechanism forconverting the icons to an appropriate format, such as a graphicaltexture provided by MICROSOFT DIRECTX(™) graphics technology. A hardwareaccelerated scaling mechanism may implement a bilinear filter or otherknown mechanism to perform the actual icon scaling while maintainingvisual fidelity of the image. The scaling may occur in real-time by theicon scaling system 200. The real-time scaling can occur at draw time oroptionally at other times.

VIII. Type Selection Process

FIG. 8 is a flow chart illustrating a process implemented by the typeselection module 230, shown in FIG. 2, for determining which type oficon should be used after a user has selected a particular icon size asexplained above with respect to FIG. 7. As set forth above with regardto FIG. 2 the selection of a thumbnail icon or traditional icontypically depends upon the scaling selection of the user.

In step A02, the system compares the icon size and a pre-set sizecutoff. If the icon size is above the pre-set size cutoff in step A04,the system seeks a thumbnail icon in step A10. If the icon is not abovethe size cutoff in step A04, the system selects and shows a traditionalitem in step A14.

In step A10, the system seeks a thumbnail icon. If a thumbnail icon isnot cached in step A12, the system attempts to extract it in step A06.If the thumbnail is not cached in step A12, or if the extraction issuccessful in step A08, the system selects and shows the thumbnail iconin step A16. If the extraction is unsuccessful in step A08, the systemselects and shows the traditional icon in step A14.

Exemplary icon size cutoffs are illustrated in Table 6 below.

TABLE 6 Perceived Item Type Thumbnail/Icon Cutoff Document 32 Folder 32Picture Always thumbnail Video Always thumbnail Stack (Phodeo) Alwaysthumbnail Song Always thumbnail Stack (Album) Always thumbnail Stack(Artist) Always thumbnail People Always thumbnail Groups Alwaysthumbnail Devices Always thumbnail Internet Shortcuts 16

IX. Resource Selection And Scaling Process

FIG. 9 illustrates a process for selection of an image resource by theresource selection module 210, illustrated in FIG. 2, after a user hasscaled a selected icon.

As set forth above, the system may provide image snap sizes. The sizesmight include for example 16, 32, 48, 128, and 256 pixels. For everyitem Y at any size X the system may choose the image at the bestavailable size for Y. In step B02, the system searches for theappropriate sized image X. If X is a snap size and an image for Y isavailable at size X in step B04, then the system uses the availableimage at size X in step B20. If an image for Y is not available in sizeX, in step B04, then the system determines if the largest size wassearched in step B06. If the largest size was not searched in step B06,the system searches the next largest size in step B08. If the nextlargest image is available in step B10, the system uses the availableicon in step B20. If the image is not available in step B10, the systemcontinues the search until the largest image has been searched.

Subsequently, in step B12, if the search for larger images representingY was unsuccessful, the system determines if the smallest size has beensearched. If the smallest size has not been searched, the systemcontinues to search for the next smallest size in step B14. If the imageis available in step B16, the system uses it in step B20. If the icon isnot available and the smallest size has been searched in step B12, thesystem uses a generic image in step B18. If and only if no image can befound at any size, the system will show a generic image. Although theprocess above is described as considering larger images prior to smallerimages, the reverse process is also encompassed.

If the user selection requires that the image be scaled between snapsizes, the system utilizes a scaling mechanism including a mechanism forconverting the images to an appropriate format, such as DX9 textures. Ahardware accelerated scaling mechanism may implement a bilinear filterto perform the actual image scaling. In addition to scaling theretrieved image, the system also attempts to re-extract at the correctsize. The system uses the closest stored image it can find in theinterim time. Once the system re-extracts, it displays the correctlysized image and also stores the new correctly sized image into a cachefor subsequent retrieval. This extraction, display, store-into-cachesequence also occurs if the cache is empty and first displays thetraditional icon.

The resource selection and/or scaling process may also use a variety ofdifferent types of icons depending on resource availability. Forexample, FIG. 10 depicts an example process in which the resourceselection module 210 may select an appropriate icon for display. First,in step 1001, the system may receive an icon scaling size to be used forthe icons appearing in the display. This may be based on a userpreference, such as the scaling mechanism described above, or it may bedone automatically by the system as a default or user setting fromhardware and/or software inputs.

Once the icon scaling size is determined, the system may then proceed tostep 1002, in which the next (or first) object to be displayed may beconsidered. The objects may be, for example, the various files,documents, data, etc. that are to be represented by the icons in thedisplay. In step 1003, the system may check to see whether an imagingicon, having a reduced-size image displaying the current object'scontents, is available for the current object. This may be accomplishedusing, for example, the resource selection process described above andshown in FIG. 9. Other approaches may also be used. For example, thesystem may make the determination based on whether a predefined imagingicon already exists for the current object. Alternatively, the systemmay make the determination based on the object type, or its datacontents, to decide whether a suitable imaging icon may be generated forthe display.

If, in step 1003, the system determines that a suitable imaging icon isavailable, the process may move to step 1004, in which that suitableimaging icon may be retrieved and/or generated, and used for the displayof the current object. If, however, the system determines that nosuitable imaging icon is available, the process may move to step 1005.In step 1005, the system may check to see if a suitable detail icon isavailable for the object. A detail icon may be any displayable imagewhose appearance depends on the contents of the current object, butwhich falls short of an image of the object's contents. For example, thedetail icon might not include a display showing the object's contents invisual form (e.g., a miniature image of a picture file), but it mayinclude some indicia of a type (e.g., whether it is a word processingdocument, a text document, a spreadsheet, an audio file, a video file,etc.), status (e.g., whether it is editable, its age, when it was lastedited, etc.), or other characteristic of the object. Although thedetail icon does not have an image representation of the object'scontents, the detail icon may still include helpful informationidentifying the current object. For example, some or all of the overlayinformation described above may be incorporated or added into the detailicon, such that the detail icon conveys information identifying one ormore characteristics (e.g., object type, status, contents, etc.) of theobject. For example, if the object is a word processing document (e.g.,a MICROSOFT WORD™ document), but the system decided against displayingan image of the object's contents (perhaps the document text was toodense to be adequately represented as a thumbnail), the detail iconmight display a symbol representing the fact that the object is a wordprocessing document. The detail icon may include, for example, a typeoverlay identifying the document type, such as overlay 302 b. Otherobject characteristics and/or overlay data may also be displayed in thedetail icon.The step 1005 determination may follow the same process used in the step1003 determination, and may check to see if a suitable detail icon canbe retrieved and/or generated for the current object. Alternatively, thesystem may be configured to avoid trying to generate detail icons, andmay instead simply check to see if a predetermined detail icon (e.g., apreconfigured bitmap image) already exists in the system. Simplifyingthis step may lead to faster performance.If, in step 1005, the system determines that a suitable detail icon isavailable for the object, the system moves to step 1006, and uses thatsuitable detail icon in the display for the current object. However, ifno suitable detail icon is available, then the system may move to step1007.In step 1007, the system has determined that no suitable imaging ordetail icons are available, and may use a generic icon to represent thecurrent object in the display. A generic icon may be an image thatidentifies the existence of an object, but which provides minimalinformation regarding the file (or none at all). For example, a genericicon might be a plain shape, such as a square, or a blank sheet ofpaper, to represent the existence of an object. A generic icon may be apredefined image that is common to multiple objects, and in someinstances, may have a constant appearance that does not vary with theobject contents, type, status, etc. For example, a single generic iconmay be defined for use with all objects of unknown file type to thesystem.By step 1008, the system will have determined whether to use an imagingicon, a detail icon, or a generic icon for the current object, and maythen check to see if any other objects are to be displayed. For example,if the FIG. 10 process is occurring in order to display the contents ofa particular project folder, the step 1008 check may determine whetherit has identified the appropriate icon (e.g., imaging, detail, orgeneric) for all objects to be displayed. If additional objects remainto be processed, the system may return to step 1002 to retrieve the nextobject and loop through the steps described above to identify anappropriate icon for the next object.If no further objects remain to be processed, then the system mayterminate the resource selection process in step 1009.

X. Conclusion

Using one or more of the features described above, various icon imagesmay be generated. A different type of icon image may be selected basedon the location of the file represented by the icon (e.g., files in aparticular folder on the system all share a common icon) and/or thecharacteristics of the file (e.g., its metadata, type, how recently itwas accessed and/or edited etc.). Additionally, icon images may beselected using contents of the file (e.g., a shortcut icon mightretrieve the contents of the underlying file to determine the icon to bedisplayed).Thus, icon scaling enables users to resize icons to any size in a rangefrom a small size to a very large size, depending upon user preference.As an icon is resized, the appearance of the icon and the layout of theicons changes to best accommodate its new size.

Users can, in real-time, scale icons across the continuous range ofpossible sizes, and the scaling is visually appealing. Thumbnail iconsmay consistently convey what type of object they represent (e.g. WordDocument, PowerPoint deck, video clip, etc.) even for thumbnailextractors written by ISVs. Overlays may be used in a consistent andreliable way as visual cues conveying some information about an item.

While particular features have been illustrated and described in detailherein, it should be understood that various changes and modificationsmight be made without departing from the scope and intent of thedescription herein. The features described herein are intended in allrespects to be illustrative rather than restrictive. Alternatives willbecome apparent to those skilled in the art. For example, the scalingprocesses described above may work sufficiently well when scaling up andscaling down the icon size. As another example, although the descriptionabove refers to icons for underlying files, the system is not limited torepresenting files, and can be used for icons representing any item on acomputing system, such as directories, shortcuts, etc.

From the foregoing it will be seen that the features described hereinwell adapted to attain some or all of the ends and objects set forthabove. It will also be understood that certain features andsub-combinations may be employed without reference to other features andsub-combinations. For example, the steps in the processes describedabove may be rearranged and/or omitted as desired.

1. A method performed by a computing system having a processor andmemory for displaying an icon having a type overlay that upon selectionallows access to an underlying file, the method comprising: generating,with the processor and the memory, the icon for the underlying filebased on a user-requested icon size received from a user, wherein theuser-requested icon size is an icon size between a first defined iconsize and a second defined icon size; selecting a type overlayoverlapping and obstructing a portion of the icon, wherein the typeoverlay indicates a computing application associated with the underlyingfile; determining a size of the type overlay based on the user-requestedicon size, wherein the size of the type overlay scales independentlyfrom the icon between the first defined icon size and the second definedicon size; and presenting the icon and the type overlay overlapping andobstructing a portion of the icon.
 2. The method of claim 1, furthercomprising providing the user with a size selection user interfaceelement having a continuous range of sizes.
 3. The method of claim 2,further comprising searching a set of stored image resources thatincludes a set of images having a number of defined sizes.
 4. The methodof claim 2, further comprising interpolating between the first definedicon size and a second defined icon size.
 5. The method of claim 4,wherein the scaling applied to the icon is different from the scalingapplied to the type overlay to interpolate between the first definedicon size and the second defined icon size.
 6. The method of claim 1,further comprising positioning the type overlay based upon theidentified icon size.
 7. The method of claim 6, further comprisingpositioning the type overlay in a corner of the generated icon.
 8. Themethod of claim 6, further comprising positioning a status overlay in acorner of the generated icon.
 9. The method of claim 1, wherein the iconis generated as a detail icon based upon the user-requested size. 10.The method of claim 1, wherein the icon is generated as a thumbnailimage icon based upon the user-requested size.
 11. The method of claim1, wherein the icon is generated as a generic image icon based upon theuser-requested size.
 12. A computer readable medium storing computerexecutable instructions that, when executed by a processor and memory,perform a method for displaying an icon having a type overlay that uponselection allows access to an underlying file, the method comprising:providing a user-selection component for allowing a user to identify anicon size for an icon representing an underlying file; receiving auser-requested icon size from the user, wherein the user-requested iconsize identifies an icon size for the icon representing the underlyingfile; generating, with the processor and the memory, the icon for theunderlying file based on a user-requested icon size received from auser, wherein the user-requested icon size is an icon size between afirst defined icon size and a second defined icon size; selecting a typeoverlay overlapping and obstructing a portion of the icon, wherein thetype overlay indicates a computing application associated with theunderlying file; determining a size of the type overlay based on theuser-requested icon size, wherein the size of the type overlay scalesindependently from the icon between the first defined icon size and thesecond defined icon size; and presenting the icon and the type overlayoverlapping and obstructing a portion of the icon.
 13. The method ofclaim 12, wherein said selection component displays a continuous rangeof sizes for user selection.
 14. The computer readable medium of claim12, wherein the method further comprising searching a set of storedimage resources upon receiving the user-requested icon size, the storedset of image resources including a set of images in a plurality ofdefined sizes.
 15. The computer readable medium of claim 14, wherein themethod further comprises interpolating between the first defined iconsize and the second defined icon size to generate the icon.
 16. Themethod of claim 12, wherein the type overlay overlaps and obstructs abottom right corner of the icon.
 17. The computer readable medium ofclaim 16, further comprising positioning a status overlay in a bottomleft corner of the generated icon.
 18. A computer readable mediumstoring computer executable instructions that, when executed by aprocessor and memory, perform a method for displaying an icon having atype overlay that upon selection allows access to an underlying file,the method comprising: providing a user-selection component for allowinga user to identify an icon size for an icon representing an underlyingfile, wherein the icon size is between a first defined icon size and asecond defined icon size; receiving a user-requested icon size from theuser, wherein the user-requested icon size identifies an icon size forthe icon representing the underlying file such that the user-requestedicon size is between the first defined icon size and the second definedicon size; generating, with the processor and the memory, the icon forthe underlying file based on a user-requested icon size received from auser, wherein the icon is generated utilizing a first ratio between thefirst defined icon size and the second defined icon size; selecting atype overlay overlapping and obstructing a portion of the icon, whereinthe type overlay indicates a computing application associated with theunderlying file; determining a size of the type overlay based on theuser-requested icon size, wherein the type overlay is generatedutilizing a second ratio between the first defined icon size and thesecond defined icon size, such that the first ratio and the second ratioare different ratios; and presenting the icon and the type overlayoverlapping and obstructing a portion of the icon.
 19. The method ofclaim 18, wherein the first ratio is between 1:1 (256/256) and 1:2(128/256), and the second ratio is between 1:1 (48/48) and 2:3 (32/48).20. The method of claim 18, wherein the first ratio is between 1:1(128/128) and 3:8 (48/128), and the second ratio is between 1:1 (32/32)and 3:4 (24/32).